package algorithm.dynamic;

/**
 * @author bingo
 * @Description
 * @Date 2018/6/25
 */

/**
 *  question: 给定一个正数n,可以将其分割成多个数字的和，若要让这些数字的乘积最大，
 *  求分割的方法(至少要分成两个数)。算法返回最大的乘积。
 *
 *
 * */
public class IntegerBreak {

    public int integerBreak(int n){

        return breakInteger(n);

    }

    private int breakInteger(int n) {
       if(n==1){
           return 1;
       }
       int res = -1;
       for(int i=1;i<=n-1;i++){
           res = max(res,i*(n-i),i*breakInteger(n-i));
       }
       return res;
    }

    public static int max(int a,int b,int c){


        return Math.max(a,Math.max(b,c));

    }

    public static void main(String[] args) {
        IntegerBreak integerBreak = new IntegerBreak();
        System.out.println(integerBreak.integerBreak(10));
    }

}
